
require 'helpers'

local function new()
    return {
        msg_map = {}
    }
end



local function insert_msg(self, msgid, callback)
    msg_map = self.msg_map

    msg_map[msgid] = callback
   -- print(self)
   -- print("==insert msg "..msgid)
   -- print(type(msgid));
    -- print_r(self.msg_map)
end

local function dispatch(self, msgid, arg)
    -- print(self)
    -- print("==dispatch msg "..msgid)
    -- print(type(msgid));
    -- print_r(self.msg_map)

    msg_map = self.msg_map

    callback = msg_map[msgid]
    if callback == nil then
        print("not module to handle msgid "..msgid);
        return 0
    end
    --call function by arg
    callback(arg)
    return 1
end

ROUTE = {
    new = new,
    insert_msg = insert_msg,
    dispatch = dispatch
}


return ROUTE




